package com.sh.data.engine.domain.dataasset.service;

import com.sh.data.engine.domain.base.model.PageResult;
import com.sh.data.engine.domain.dataasset.model.domain.FactDetailInfoDomain;
import com.sh.data.engine.domain.dataasset.model.domain.FactListDomain;
import com.sh.data.engine.domain.dataasset.model.domain.ThemeTreeDomain;
import com.sh.data.engine.domain.dataasset.model.param.FactListParam;
import com.sh.data.engine.domain.shims.db.model.PreviewDataDomain;

import java.util.List;

/**
 * @author : mingxi.xpb
 * @date : 2022/1/20 11:38
 */
public interface DataAssetService {

    /**
     * description 左侧主题目录
     *
     * @author : mingxi.xpb
     * @date : 2022/2/24 17:19
     */
    List<ThemeTreeDomain> getThemeTrees(Long projectId);

    /**
     * description 获取事实列表
     *
     * @author : mingxi.xpb
     * @date : 2022/2/24 17:17
     */
    PageResult<FactListDomain> getFactLists(FactListParam tableListParam, Long projectId);

    List<FactListDomain> getAllFacts(FactListParam tableListParam, Long projectId);

    /**
     * description 获取事实数量
     *
     * @author : jiayi
     * @date : 2023/1/11 17:17
     */
    Integer getFactCount(Long projectId);

    /**
     * description 获取事实详情
     *
     * @author : mingxi.xpb
     * @date : 2022/2/24 17:52
     */
    FactDetailInfoDomain getFactDetail(String factEnglishName, Long projectId);

    /**
     * description 获取预览数据
     *
     * @author : mingxi.xpb
     * @date : 2022/3/1 16:31
     */
    PreviewDataDomain getPreviewData(Long projectId, String factEnglishName);
}
